package com.sky.adapter;

/**
 * date : 2020-08-20
 * <p>
 * 适配器模式（Adapter）包含以下主要角色。
 * 目标（Target）接口：当前系统业务所期待的接口，它可以是抽象类或接口。
 * 适配者（Adapted）类：它是被访问和适配的现存组件库中的组件接口。
 * 适配器（Adapter）类：它是一个转换器，通过继承或引用适配者的对象，把适配者接口转换成目标接口，让客户按目标接口的格式访问适配者。
 * <p>
 *
 * @author : wushikai
 */

interface Target {
    void request();
}

/*适配者*/
public class Adapter implements Target {
    private Adapted adapted;

    public Adapter(Adapted adapted) {
        this.adapted = adapted;
    }

    @Override
    public void request() {
        adapted.specificRequest();
    }

}

/*被适配者*/
class Adapted {
    void specificRequest() {
        System.out.println("适配者中的业务代码被调用！");
    }
}

class Client {

    public static void main(String[] args) {

        Target target = new Adapter(new Adapted());
        target.request();
    }

}






